package com.ruoyi.sale.service.impl;

import java.util.List;

import com.ruoyi.shopping.mapper.MallProductMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.sale.mapper.MallBrandsMapper;
import com.ruoyi.sale.domain.MallBrands;
import com.ruoyi.sale.service.IMallBrandsService;

/**
 * 品牌管理Service业务层处理
 *
 * @author ruoyi
 * @date 2024-11-19
 */
@Service
public class MallBrandsServiceImpl implements IMallBrandsService {
    @Autowired
    private MallBrandsMapper mallBrandsMapper;

    @Autowired
    private MallProductMapper mallProductMapper;

    /**
     * 查询品牌管理
     *
     * @param id 品牌管理主键
     * @return 品牌管理
     */
    @Override
    public MallBrands selectMallBrandsById(Long id) {
        return mallBrandsMapper.selectMallBrandsById(id);
    }

    /**
     * 查询品牌管理列表
     *
     * @param mallBrands 品牌管理
     * @return 品牌管理
     */
    @Override
    public List<MallBrands> selectMallBrandsList(MallBrands mallBrands) {
        return mallBrandsMapper.selectMallBrandsList(mallBrands);
    }

    /**
     * 新增品牌管理
     *
     * @param mallBrands 品牌管理
     * @return 结果
     */
    @Override
    public int insertMallBrands(MallBrands mallBrands) {
        return mallBrandsMapper.insertMallBrands(mallBrands);
    }

    /**
     * 修改品牌管理
     *
     * @param mallBrands 品牌管理
     * @return 结果
     */
    @Override
    public int updateMallBrands(MallBrands mallBrands) {
        return mallBrandsMapper.updateMallBrands(mallBrands);
    }

    /**
     * 批量删除品牌管理
     *
     * @param ids 需要删除的品牌管理主键
     * @return 结果
     */
    @Override
    public int deleteMallBrandsByIds(Long[] ids) {
//        查询是否有商品关联
        int count = mallProductMapper.selectBrandByBrandIdCount(ids);
        if (count > 0) {
            throw new RuntimeException("品牌下有商品，无法删除");
        }
        return mallBrandsMapper.deleteMallBrandsByIds(ids);
    }

    /**
     * 删除品牌管理信息
     *
     * @param id 品牌管理主键
     * @return 结果
     */
    @Override
    public int deleteMallBrandsById(Long id) {
        return mallBrandsMapper.deleteMallBrandsById(id);
    }

    @Override
    public List<MallBrands> getAllBrandName() {
        return mallBrandsMapper.getAllBrandName();
    }
}
